#ifndef __INCLUDED_UUT_AGENT_H_
#define __INCLUDED_UUT_AGENT_H_

//////////////////////////////////////////////////////////////////////////
// this file is used for the unit test agent
// methods and definitions are used for build a extensible agent
// 

#include "UUTDef.h"

UUT_START

class IUUTAgent;
class IUUTPropReceiver;

class IUUTAgent{
public:
	virtual void StartAcceptProps(IUUTPropReceiver*) = 0;
	virtual void EndAcceptProps(IUUTPropReceiver*) = 0;
};

typedef enum{
	UUTPT_UNKNOWN = 0,
	UUTPT_INT = 1,
	UUTPT_DWORD = 2,
	UUTPT_BOOL = 3,
	UUTPT_STRING = 4
}UUTPropType;

typedef struct tag_UUTPropValue{
	UUTPropType _type;
	union{
		UUTInt32 _intValue;
		UUTUInt32 _dwValue;
		UUTBool  _bValue;
		UUTTString* _strValue;	//Attention: pointer here
	};
}UUTPropValue;

class IUUTPropReceiver{
public:
	virtual UUTBool SetPropValue(const UUTTString& id, const UUTPropValue& value) = 0;
};

UUT_END

#endif //__INCLUDED_UUT_AGENT_H_